<?php

namespace App\Helpers;

use Illuminate\Support\Facades\Storage;

class FunTool
{
    /**
     * 获取请求ip
     *
     * @return string ip 地址
     */
    public static function ip(): string
    {
        $ip = '0.0.0.0';
        if (getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
            $ip = getenv('HTTP_CLIENT_IP');
        } elseif (getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
            $ip = getenv('HTTP_X_FORWARDED_FOR');
        } elseif (getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
            $ip = getenv('REMOTE_ADDR');
        } elseif (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
            $ip = $_SERVER['REMOTE_ADDR'];
        }
        return preg_match('/[\d\.]{7,15}/', $ip, $matches) ? $matches[0] : $ip;
    }

    /**
     * 图片自动补全
     * @param string|null $value
     * @return string
     */
    public static function imageUrl(string|null $value): string
    {
        return empty($value) ?"" : Storage::disk(config('filesystems.default'))->url($value);
    }
}
